import requests
from config_manager import config

def call_deepseek_api(prompt, model="deepseek-chat"):
    """调用DeepSeek API进行AI分析"""
    if not config['deepseek_api_key']:
        return "请先设置DeepSeek API Key"

    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {config['deepseek_api_key']}"
    }

    # 不再添加特殊标记，前端现在通过内容分析自动处理高亮显示
    data = {
        "model": model,
        "messages": [
            {"role": "system", "content": "你是一位专业的金融分析师和投资顾问，擅长股票分析和市场预测。"},
            {"role": "user", "content": prompt}
        ],
        "temperature": 0.7,
        "max_tokens": 1000
    }

    try:
        response = requests.post(config['deepseek_api_url'], headers=headers, json=data)
        response.raise_for_status()
        result = response.json()
        return result['choices'][0]['message']['content']
    except Exception as e:
        print(f"DeepSeek API调用错误: {e}")
        return f"API调用失败: {str(e)}"


def generate_stock_analysis_prompt(symbol, stock_name, stock_industry, indicators, lookback_days):
    """生成股票分析提示"""
    # 提取纯股票代码（去掉交易所后缀）
    pure_symbol = symbol.split('.')[0]
    
    # 安全格式化技术指标值
    def safe_format(value, format_str):
        return format_str.format(value) if value is not None else '暂无数据'
        
    # 构建带股票名称和行业信息的提示
    stock_info = f"股票代码: {pure_symbol}"
    if stock_name:
        stock_info += f" ({stock_name})"
    if stock_industry:
        stock_info += f"，所属行业: {stock_industry}"
        
    prompt = f"""
    请分析以下A股股票数据并给出投资建议：
    
    {stock_info}
    最新价格: {safe_format(indicators['latest_price'], '{:.2f}')}
    成交量: {safe_format(indicators['volume'], '{:,.0f}')}
    5日均线: {safe_format(indicators['ma5'], '{:.2f}')}
    20日均线: {safe_format(indicators['ma20'], '{:.2f}')}
    波动率20日(年化): {safe_format(indicators['volatility_20'], '{:.2%}') if indicators['volatility_20'] is not None else '暂无数据'}
    波动率60日(年化): {safe_format(indicators['volatility_60'], '{:.2%}') if indicators['volatility_60'] is not None else '暂无数据'}
    RSI6: {safe_format(indicators['rsi_6'], '{:.2f}') if indicators['rsi_6'] is not None else '暂无数据'}
    RSI14: {safe_format(indicators['rsi_14'], '{:.2f}') if indicators['rsi_14'] is not None else '暂无数据'}
    RSI21: {safe_format(indicators['rsi_21'], '{:.2f}') if indicators['rsi_21'] is not None else '暂无数据'}
    
    买入信号: {', '.join(indicators['signals']['buy_signals']) if indicators['signals']['buy_signals'] else '无'}
    卖出信号: {', '.join(indicators['signals']['sell_signals']) if indicators['signals']['sell_signals'] else '无'}
    
    过去{lookback_days}天的价格趋势和交易量变化。
    
    请提供：
    1. 对当前股票状况的简要分析
    2. 短期（1-2周）和中期（1-3个月）的价格走势预测
    3. 基于技术指标和A股市场环境的投资建议
    4. 潜在风险因素和注意事项
    
    请使用中文回答，并保持专业、客观的分析风格，符合中国投资者的阅读习惯。
    """
    
    return prompt
